home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / comm / tcp / tcpdl.lha / tcpdl.doc < prev    next >
Encoding:
Text File  |  1998-06-02  |  28.7 KB  |  858 lines

  1. tcpdl V2.4a distribution                                June 1998
  2.  
  3.  
  4. CONTENTS
  5. ========
  6.  
  7. This archive consists of the following files:
  8.  
  9.   tcpdl 2.4a      the tcpdl http download program
  10.  
  11.   tcpdlpp 1.5     the post processor for downloaded pages
  12.  
  13.   tcpdl.doc       this document
  14.  
  15.   urllist         example urllist file
  16.  
  17.   tcpdl.config    example tcpdl.config file
  18.  
  19.   tcpdlpp.config  example tcpdlpp.config file
  20.  
  21.  
  22. INTRODUCTION
  23. ============
  24.  
  25. tcpdl is a program to download files from http hosts. Files to be
  26. downloaded are listed in a file called "tcpdldir:urllist".
  27.  
  28. tcpdlpp is a program to post process files that have been downloaded
  29. by tcpdl. This amends the URLs within each html file so that the 
  30. downloaded pages may be used locally, while any URLs that have not
  31. been downloaded refer to their full URL.
  32.  
  33.  
  34. COPYRIGHT
  35. =========
  36.  
  37. tcpdl is Copyright © 1996 Patrik Nilsson
  38.          Copyright © 1997, 1998 Ramjam Consultants Ltd
  39.  
  40. tcpdlpp is Copyright © 1997, 1998 Ramjam Consultants Ltd
  41.  
  42. This archive is freely distributable, but may not be included in any 
  43. commercial software collection other than Aminet without prior permission.
  44.  
  45.  
  46. REQUIREMENTS
  47. ============
  48.  
  49. To use tcpdl you need a TCP/IP stack and a connection to a http host.
  50.  
  51. Both tcpdl and tcpdlpp should work on any Amiga system which supports
  52. a TCP stack.
  53.  
  54. In use tcpdl typically requires approx 1Mb of RAM plus 500-1000 bytes 
  55. for each file to be downloaded, and tcpdlpp requires about 100K plus
  56. 100 bytes per file to be processed.
  57.  
  58. Disk space equivalent to about twice the size of the files to be 
  59. downloaded is also required.
  60.  
  61. tcpdl tries to use Xen font for the status window. If this is not 
  62. available it will use the default font, but this may lead to some
  63. data not being readable.
  64.  
  65.  
  66. SUPPORT
  67. =======
  68.  
  69. Please report any problems, and send any suggestions or comments to:
  70.  
  71.   support@ramjam.u-net.com
  72.  
  73. The most recent version will always be available from 
  74.  
  75.   http://www.ramjam.u-net.com/
  76.  
  77. Major versions may also be available from Aminet.
  78.  
  79. There is no requirement to register use of this program, but anyone
  80. doing so will be kept informed of updates.
  81.  
  82. Both programs have been optimised for the 68000 processor in order to 
  83. be as generic as possible.
  84.  
  85.  
  86. KNOWN PROBLEMS
  87. ==============
  88.  
  89. tcpdl:
  90.  
  91. - doesn't resolve links from HTML with a <BASE> specification correctly
  92.   (a fix is planned for version 2.5)
  93.  
  94. - doesn't allow access to sites which require a userid/password.
  95.   (enhancement planned for version 2.5)
  96.  
  97. - doesn't support the automatic download of URLs referenced by the
  98.   name attribute of the object tag. This is because the name attribute
  99.   does not always apply to a URL. Since the object tag is only supported
  100.   by IE3, and the name attribute refers to a URL that is likely to be
  101.   applicable only to IE3, this is not seen as a significant restriction.
  102.   (no fix planned)
  103.  
  104. tcpdlpp:
  105.  
  106. - doesn't handle links from HTML with a BASE specification correctly
  107.   (a fix is planned for version 1.6)
  108.  
  109.  
  110. DISCLAIMER
  111. ==========
  112.  
  113. A great deal of effort has gone into making these programs as reliable
  114. as possible. However, there is no guarantee that they will perform as
  115. described in all cases. 
  116.  
  117. These programs are used entirely at the user's own risk. No liability
  118. can be accepted for loss of data resulting from the use of these 
  119. programs.
  120.  
  121.  
  122. AKNOWLEDGEMENTS
  123. ===============
  124.  
  125. Thanks to Patrik Nilsson for the original version of tcpdl.
  126.  
  127. Thanks also to all the users of tcpdl for their comments and suggestions.
  128.  
  129.  
  130. CHANGES FROM PREVIOUS RELEASE
  131. =============================
  132.  
  133. tcpdl
  134. -----
  135.  
  136. V2.4 -> V2.4a:
  137.  
  138. - fixed a bug that caused non-text files to be downloaded even
  139.   when the previously downloaded version was still current.
  140.   This wasted bandwidth unnecessarily. Thanks to Jon Wareham
  141.   for reporting this problem.
  142.  
  143. V2.3c -> V2.4:
  144.  
  145. - reworked the code that deals with the http transfer. This should
  146.   make the code more tolerant of strange replies from the server,
  147.   and has paved the way for further improvements in the future.
  148.  
  149. - changed behaviour when URLs containing characters that are invalid
  150.   in AmigaDOS file names are encountered. Any invalid characters are
  151.   now encoded as %xx where xx is the hex value of that character.
  152.   This is transparent to web browsers and servers, as this form of
  153.   encoding is standard. The encoded filename will be used in HTML
  154.   references, as well as in the file name itself.
  155.   Previously, a CRC encoding was added to the file name, making it
  156.   hard to determine what the original file name was. This ensured it 
  157.   was unique, but introduced its own problems.
  158.  
  159. - changed behaviour when filenames are longer than allowed by the
  160.   filesystem being used. Filenames are now simply truncated at 
  161.   the maximum supported length (30 characters for FFS). The full
  162.   URL without truncation will appear in HTML references.
  163.   Previously, the filename was truncated and a CRC encoding was
  164.   added. The new approach could lead to filename clashes (where
  165.   more than one file in a directory has the same name) but this
  166.   is expected to cause fewer problems than the CRC encoding.
  167.   Note that the encoding of characters (described above) that are
  168.   invalid in filenames may cause filenames to exceed the length
  169.   limit and be truncated.
  170.  
  171. - added the NOSAVE command line option. When specified this 
  172.   prevents any downloaded files from being saved.
  173.   This feature has been requested by users that use tcpdl to
  174.   prime local proxy servers (e.g. httpproxy) with files. If
  175.   tcpdl also saved the files, there would be 2 copies stored 
  176.   locally.
  177.  
  178. - added the DEBUG command line option. When specified this 
  179.   stores a copy of the HTTP request in each DATA file, and
  180.   leaves data files from failed transfers in the TEMP directory.
  181.   This is intended for use in investigating problems only,
  182.   and isn't intended ffor general use.
  183.  
  184. - added new status messages
  185.   "*BREAK*" indicates that the task has noticed the ctrl-C
  186.   "Not Found" indicates that the URL was not found on the server
  187.   "SRVR ERROR" indicates that the server reported an error
  188.  
  189. - previously, some temporary file were written to t:, which could 
  190.   cause problems in low memory situations. All files are now 
  191.   written to tcpdldir: so the user has control of the location
  192.   of all files generated (even temporarily) by tcpdl.
  193.  
  194. - corrected display of current and total file sizes. Previously
  195.   these were displayed only intermittently.
  196.  
  197. - corrected minor bug in the status display which caused columns
  198.   not to be correctly aligned
  199.  
  200. - reduced memory usage slightly
  201.  
  202. - corrected a bug that could leave some files locked if an error
  203.   occured during a download
  204.  
  205.  
  206. V2.3b -> V2.3c:
  207.  
  208. - added URL command line option. This allows a URL to be downloaded to
  209.   be specified on the command line rather than in the urllist file.
  210.   See the Command Line Options section below for details.
  211.  
  212. - added CONFIG command line option. This can be used to specify the
  213.   configuration file to be used. If it is not specified, the default
  214.   tcpdldir:tcpdl.config is used as previously.
  215.  
  216. - added TASKS command line option to allow the number of tasks to be 
  217.   used in downloading URLs to be specified. Valid range is 1 to 15.
  218.  
  219. - added TASKS config option. If present, this value acts as the default
  220.   number of tasks to be used in downloading URLs. Valid range is 1 to 15.
  221.   This value can be overridden by use of the command line TASKS option.
  222.  
  223. - added USERAGENT config option. If present, this specifies the user
  224.   agent name to be sent to the HTTP server. By default the user agent
  225.   name used will be of the form "tcpdl/<version>", where <version>
  226.   is the current version number. This can be used to spoof as some
  227.   other HTTP client, for (broken) sites which only accept requests from 
  228.   certain browsers.
  229.  
  230. - reduced the default number of processes to 12, as 15 was too much
  231.   for many machines.
  232.  
  233. - changed command line option handling to use AmigaDOS templates.
  234.  
  235. V2.3a -> V2.3b:
  236.  
  237. - tcpdl sent http commands that some hosts didn't like - it should now
  238.   manage to talk to hosts using any version of HTTP.
  239.  
  240. - The UPDATE flag wasn't correctly propogated to all the URLs referenced
  241.   by the files marked with UPDATE in the urllist.
  242.   This was a fundamental design flaw, and so the UPDATE flag has been
  243.   removed and replaced by an UPDATE command line option which applies
  244.   to all URLs in urllist.
  245.  
  246. - The IMG flag didn't quite do what was advertised, so it has been 
  247.   amended slightly:
  248.   TEXT means all URLs that are referenced by a "href" attribute
  249.   IMG  means all URLs that are referenced by an attribute other than "href"
  250.   ALL  means all URLs that are referenced
  251.   
  252. - added a configuration option USER, which allows the mail address to be
  253.   used in the HTTP commands to be specified. By default tcpdl uses the
  254.   username and host name used by the tcp/ip stack. If the USER option
  255.   is specified with no mail address, then no From: header will be 
  256.   sent in HTTP commands.
  257.  
  258. - tcpdl used to send the user's realname to the http host - there is no
  259.   need to do this, so now it doesn't.
  260.  
  261. - fixed the DISK-ERR message, which looked untidy.
  262.  
  263. V2.3 -> V2.3a:
  264.  
  265. - made it possible to exit tcpdl when run from Workbench
  266.  
  267. - fixed enforcer hits when urllist contains a blank line
  268.  
  269. V2.2 -> V2.3:
  270.  
  271. - added support for proxy servers
  272.  
  273. - added configuration options for connection, and htpp transfer timeouts
  274.  
  275. - added configuration option for the number of retries for failed
  276.   transfers
  277.  
  278. - tcpdl now uses memory pools for its memory allocation. This improves
  279.   the allocation times slightly, but has a dramatic effect on the 
  280.   deallocation time. It also reduces the risk of memory "leakage" when
  281.   tcpdl is interrupted.
  282.  
  283. - the User Agent name has been changed to conform to RFC2068
  284.  
  285. - the tcpdl.config file is now closed as soon as it has been read
  286.  
  287. - the environment variable USERNAME is now used if USER is not set
  288.  
  289. - changed the ERROR status indicator to be more specific about the
  290.   cause of the error
  291.  
  292. V2.1 -> V2.2:
  293.  
  294. - added tcpdl.config to allow the specification of file types that are
  295.   not to be downloaded.
  296.  
  297. V2.0 -> V2.1:
  298.  
  299. - fixed problem where URLs in the urllist file which were not followed
  300.   by at least one space or tab character were ignored.
  301.  
  302.  
  303. tcpdlpp
  304. -------
  305.  
  306. V1.3 -> V1.4:
  307.  
  308. - changed the handling of URLs with a leading '/'. All URLs are now
  309.   converted to relative form, so all local links should work when
  310.   browsing off-line.
  311.  
  312. V1.2 -> V1.3:
  313.  
  314. - minor optimizations
  315.  
  316. V1.1 -> V1.2:
  317.  
  318. - improved the handling of ".." in URLs
  319.  
  320. - added optional translation of characters in URLs, by means of a new
  321.   configuration file "tcpdldir:tcpdlpp.config" 
  322.  
  323.  
  324. USING TCPDL AND TCPDLPP
  325. ======================
  326.  
  327. OVERVIEW:
  328. ---------
  329.  
  330. Both tcpdl and tcpdlpp expect the assign tcpdldir: to refer to a directory.
  331. This directory is the work area for both programs.
  332.  
  333. By default, the urllist file, containing the list of URLs to be downloaded
  334. is expected to be in this directory. The optional configuration files,
  335. tcpdl.config and tcpdlpp.config are also expected to be in this directory.
  336.  
  337. When tcpdl downloads URLs it will create two directories below tcpdldir:,
  338. DATA and HTTP. Beneath each of these, one directory will be created for
  339. each host, and beneath each of these will be the directories and files which
  340. are downloaded.
  341.  
  342. The HTTP directory contains the actual files that are downloaded, while the
  343. DATA directory contains files holding information about each file downloaded.
  344.  
  345. Example:
  346.  
  347. the following directory tree shows the structure that might result from use
  348. of the example URLs given in the "THE TCPDLDIR:URLLIST FILE" section below.
  349.  
  350.  
  351.          tcpdldir:
  352.             |
  353.             |
  354.             +------- urllist
  355.             |
  356.             |
  357.             +------- TEMP 
  358.             |         |
  359.             |         |
  360.             |        ...
  361.             |
  362.             |
  363.             +------- HTTP 
  364.             |         |
  365.             |         |
  366.             |         +------- www.ramjam.u-net.com
  367.             |         |                  |
  368.             |         |                  |
  369.             |         |                  +------- index.html
  370.             |         |                  |
  371.             |         |                  |
  372.             |         |                  +------- amiga
  373.             |         |                  |          |
  374.             |         |                  |          |
  375.             |         |                 ...        ...
  376.             |         |
  377.             |         |
  378.             |         +------- www.cu-amiga.co.uk
  379.             |         |                  |
  380.             |         |                  |
  381.             |         |                  +------- index.html
  382.             |         |                  |
  383.             |         |                  |
  384.             |        ...                ... 
  385.             |
  386.             |
  387.             +------- DATA 
  388.                       |
  389.                       |
  390.                       +------- www.ramjam.u-net.com
  391.                       |                  |
  392.                      ...                ...
  393.  
  394.  
  395. Thus, once a file has been downloaded, it appears within a directory that
  396. identifies the host from which it came.
  397.  
  398. The DATA directory is used by tcpdl during the download and update process.
  399. The final files appear in the HTTP directory. The DATA/HTTP directory
  400. tree will mirror the actual HTTP directory tree, but the files contain
  401. the HTTP response from the server which includes information that
  402. tcpdl uses. This information includes the date and time of download 
  403. (used when performing an UPDATE), and for html files, a list of all 
  404. the URLs that are referenced.
  405.  
  406. The TEMP directory holds temporary files during processing by tcpdl.
  407. Unless the DEBUG coption is specified, all temporary files should be
  408. deleted by tcpdl upon exit.
  409.  
  410. The HTML files downloaded by tcpdl will have references to URLs replaced by
  411. a reference to a local file, e.g.
  412.  
  413.   http://www.ramjam.u-net.com/home.html
  414.  
  415. will become
  416.  
  417.   file://localhost/tcpdldir:http/www.ramjam.u-net.com/home.html
  418.  
  419. The post processor, tcpdlpp, processes all files within the tcpdldir:http
  420. directory and converts references to other files that are present in this
  421. file hierarchy to relative URLs, and converts all other references back to
  422. absolute URLs.
  423.  
  424. This allows the files within the tcpdldir:http directory to be browsed 
  425. offline, while allowing links to other URLs to be followed if the user 
  426. happens to be online. By downloading your favourite pages, you can browse 
  427. the web much faster, while still being able to follow links to other sites.
  428.  
  429. The downloaded pages may be updated periodically using tcpdl with the
  430. UPDATE option, and then running tcpdlpp again to adjust any amended
  431. references.
  432.  
  433.  
  434. TO START:
  435. ---------
  436. 1. assign "tcpdldir:" to the directory which is to contain the 
  437.    downloaded files (this directory should exist).
  438.    (e.g. "assign tcpdldir: work:tcpdldir")
  439. 2. Edit the file tcpdldir:urllist such that it contains the files
  440.    to be downloaded.
  441. 3. edit tcpdldir:tcpdl.config as required
  442. 4. edit .tcpdlpp.config as required
  443. 5. check that there is enough disk space for the pages you intend 
  444.    to download
  445. 6. connect to the Internet
  446. 7. run "tcpdl" from a shell
  447. 8. if required, run "tcpdlpp" from a shell (this can be done offline).
  448.  
  449. If on checking the output of tcpdlpp there are a lot of references
  450. to a non-local URL you may want to use tcpdl to download that URL.
  451. After downloading it, re-run tcpdlpp to change all links to that
  452. URL to refer to the local file.
  453.  
  454.  
  455. COMMAND LINE OPTIONS:
  456. ---------------------
  457.  
  458. tcpdl accepts a number of command line options.
  459.  
  460. URL=<URL specification>
  461.  
  462.   The URL specification can either be just a URL, or a URL with download
  463.   options as in the urllist file. If options are specified, then the
  464.   URL and options must all be enclosed within quotes.
  465.  
  466.   e.g.
  467.  
  468.   tcpdl url=http://www.ramjam.u-net.com/
  469.  
  470.   tcpdl url="http//www.ramjam.u-net.com/ TEXT"
  471.  
  472. URLLIST=<file>
  473.  
  474.   The URLLIST option specifies a file containing a list of URLs to be 
  475.   downloaded.  If this option is not specified then "tcpdldir:urllist"
  476.   is used by default. See the section "THE TCPDLDIR:URLLIST FILE" for
  477.   details of the format of this file.
  478.  
  479. CONFIG=<file>
  480.  
  481.   The CONFIG specifies a file containing configuration options. If this
  482.   option is not specified then "tcpdldir:tcpdl.config" is used by 
  483.   default. See the section "THE TCPDLDIR:tcpdl.config FILE" for details
  484.   of the format of this file.
  485.  
  486. TASKS=<number>
  487.  
  488.   The TASKS option specifies how many URLs will be downloaded at once.
  489.   This overrides any TASKS value specified in tcpdl.config. The valid
  490.   range of values is 1 to 15. 
  491.   
  492. UPDATE
  493.  
  494.   The UPDATE option specifies that any file that has been downloaded
  495.   will be checked to see whether it has been updated since then. If
  496.   it has it will be downloaded again.
  497.  
  498. NOSAVE
  499.  
  500.   The NOSAVE option specifies that the downloaded files should not be
  501.   saved. This may be useful if tcpdl is used to prime a local proxy
  502.   server, or in testing http servers.
  503.  
  504. DEBUG
  505.  
  506.   The DEBUG option specifies that the files within the DATA hierarchy
  507.   should contain a copy of the HTTP request that was sent to the
  508.   server, as well as the response and other usual information. It
  509.   also disables the deletion of temporary files from the TEMP directory
  510.   for transfers that failed. This can be useful to investigate the 
  511.   reason for failed transfers.
  512.  
  513.  
  514. TCPDL TASK STATUS WINDOW:
  515. -------------------------
  516.  
  517. The tcpdl status window is updated approx. once per second (Note that 
  518. not every change in status will have a chance to appear in the window).
  519.  
  520. tcpdl can download a number of files at once. There is one line in the
  521. status window for each of these tasks. The fields on each line are
  522. described below:
  523.  
  524. Status:         one of the following values:
  525.                 "Connecting"    Trying to connect a host.
  526.                 "Sending"       Sending request.
  527.                 "Header"        Receiving header.
  528.                 "Updating"      Requesting using "If-Modified-Since" from 
  529.                                 a host or loading data from tcpdldir:data/
  530.                 "OK"            File downloaded successfully
  531.                 "Receiving"     Receiving data.
  532.                 "Wait. html"    A limit of 512k html-data to process.
  533.                                 Processing will continue when the amount 
  534.                                 outstanding falls below the limit.
  535.                 "Proc. html"    Processing html.
  536.                 "Copying"       Copying html-file to tcpdldir:http/
  537.                 "Not Found"     The server reported the URL not found 
  538.                 "LIB ERR"       Unable to open bsdsocket.library
  539.                 "HOST ERR"      Unknown  or unreachable host
  540.                 "SOCK ERR"      Unable to open socket
  541.                 "CON ERR"       Unable to connect to host
  542.                 "HDR ERR"       Failed to download header
  543.                 "RECV ERR"      Failed while receiving data
  544.                 "FILE ERR"      Failed to open output file
  545.                 "SRVR ERR"      Server reported an error
  546.                 "DISK ERR"      Failed while writing to output file
  547.                                 (most likely the disk is full)
  548.                 "ERROR"         Some other error occurred
  549.                 "*BREAK*"       The task has recognised a user break
  550.                                 or an error is causing an abort (e.g.
  551.                                 the disk is full)
  552.  
  553. Time:           elapsed time since trying to connect
  554.  
  555. CPS:            the current download rate achieved for this file 
  556.  
  557. CSize:          the current size of the data received
  558.  
  559. FSize:          the final size of the data, if given by the server
  560.  
  561. Request:        the URL requested
  562.  
  563.  
  564. The top line of the status window also contains an overall progress indicator
  565.  
  566. (DONE:<n> TOTAL:<m>):      <n> the number of files downloaded so far
  567.                            <m> the number of files listed in memory 
  568.  
  569.  
  570. The bottom line of the status window gives some overall performance figures:
  571.  
  572. Total time:     the elapsed time since tcpdl started execution
  573.  
  574. Total bytes:    the total number of bytes downloaded so far
  575.  
  576. Average cps:    the average number of characters per second downloaded 
  577.  
  578.  
  579. OTHER NOTES:
  580. ------------
  581.  
  582. Execution may be terminated using CTRL+C. The program exits as fast as
  583. is possible safely. It can take a little while if it is processing large 
  584. htmlfiles at the time. As each task notices the CTRL-C, the status will
  585. change to "*BREAK*".
  586.  
  587. If a particular host times out on more than 5 occasions, no further attempts
  588. are made to download any files from that host. This avoids wasting time
  589. attempting to connect to a host that is down.
  590.  
  591.  
  592. THE FILE "TCPDLDIR:urllist":
  593. ----------------------------
  594.  
  595. The urllist file should contain one or more URLs which are to be downloaded.
  596.  
  597. Each URL should start on a new line, and be followed by the appropriate
  598. flags, separated by spaces.
  599.   
  600. The supported flags are:
  601.  
  602. D1, D2, ...,  D19          downloading n levels of text/html
  603.                            DEFAULT 255 (!)
  604.  
  605. H0, H1, ...,  H5           If another host is referenced by a HREF
  606.                            max number of levels is set to n.
  607.                            DEFAULT H0, current host only.
  608.  
  609. P0, P1, ...,  P5           If path is other than given in your urllist
  610.                            max number of levels is set to n. 
  611.                            DEFAULT Pn, where n is the same as for Dn
  612.  
  613. TEXT                       download files referenced by a "href"
  614.                            attribute. These will commonly, but not
  615.                            exclusively, be HTML files.
  616.  
  617. IMG                        download files referenced an attribute
  618.                            other than "href". These are commonly,
  619.                            but not exclusively, images.
  620.  
  621. ALL                        download all types of files. This is the
  622.                            default if none of IMG, TEXT, ALL are specified.
  623.                            (Note that this will not download files with
  624.                            types that appear in IGNORE lines within
  625.                            tcpdl.config)
  626.  
  627. (UPDATE                    This flag has been removed - use the UPDATE
  628.                            command line option instead)
  629.  
  630. e.g.
  631.  
  632. http://www.cu-amiga.co.uk/index.html      D2 H3 TEXT
  633.  
  634.      will download 2 levels of html files referenced by the specified file
  635.      from www.cu-amig.co.uk, and 3 levels of links to any other host.
  636.  
  637. http://www.ramjam.u-net.com/home.html  D5 H0 ALL 
  638.  
  639.      will download 5 levels of files referenced by the specified file
  640.      from www.ramjam.u-net.com, but will not download any files that
  641.      are referenced on any other host.
  642.  
  643. http://www.ramjam.u-net.com/ TEXT
  644.  
  645.      will download all text files referenced by the default home page
  646.      from the host www.ramjam.u-net.com.
  647.  
  648.  
  649. THE FILE "TCPDLDIR:tcpdl.config":
  650. ---------------------------------
  651.  
  652. The tcpdl.config file is optional. If present, it will be read in and
  653. the contents will be used in determining what file types will be 
  654. downloaded.
  655.  
  656. Any line with a hash ('#') in column 1 will be ignored as a comment.
  657.  
  658. White space is ignored, and the commands are not case-sensitive.
  659.  
  660. Currently the following configuration commands are suported: 
  661.  
  662. IGNORE <suffix>
  663.  
  664.   where <suffix> is a file suffix which should not be downloaded. Note
  665.   that such files mentioned explicitly in urllist will be downloaded,
  666.   but any such files referenced within html will not.
  667.  
  668.   Note that <suffix> may contain any characters except white space,
  669.   but will only be matched against the end of a file name.
  670.  
  671. PROXY <proxyserver:port>
  672.  
  673.   this specifies that all http requests shpould be sent via the 
  674.   specified server. If the port number is omitted, then a default 
  675.   of 8080 is used.
  676.  
  677.   By specifying your ISP's proxy server you can improve download
  678.   speeds significantly - especially for busy sites.
  679.  
  680.   A proxy will also be required for connections via a firewall.
  681.  
  682. CONTIMEOUT <seconds>
  683.  
  684.   this specifies the initial timeout for each connection in seconds. 
  685.   The default is 20. The timeout must be within the range 10 to 600.
  686.   
  687. HTTPTIMEOUT <seconds>
  688.  
  689.   this specifies the timeout for each http request in seconds. 
  690.   The default is 60. The timeout must be within the range 10 to 600.
  691.   
  692. RETRIES <number>
  693.  
  694.   this specifies the number of attempts that will be made to download
  695.   each file. The default is 5. The value must be within the range 
  696.   1 to 100.
  697.   
  698. USER <mail address>
  699.  
  700.   the mail address is sent to the HTTP server as the address that 
  701.   mail can be sent to if there are problems caused by tcpdl's requests.
  702.   If the USER option is specified without a mail address, then 
  703.   HTTP requests will not include any mail address (this can help
  704.   maintain your anonymity). If the USER option is not present in 
  705.   the config file, then your current user id and host name are
  706.   used.
  707.  
  708. TASKS <number>
  709.  
  710.   the number of URLs that will be downloaded concurrently. If this 
  711.   option is not specified then the default of 12 will be used.
  712.   The valid values are 1 to 15. This value may be overridden by
  713.   the TASKS command line option.
  714.  
  715. USERAGENT  <string>
  716.  
  717.   the string specifies the user agent name that will be sent to the
  718.   HTTP server. The string is assumed to start at the first non-blank
  719.   character after the USERAGENT keyowrd, and to run until the end
  720.   of the line - so it may contain spaces. This option allows tcpdl
  721.   to appear as if it is some other http client, which is necessary
  722.   to access some (broken)  sites which only accept requests from 
  723.   certain browsers.
  724.  
  725. e.g. The following is an example of what may appear in tcpdl.config
  726.  
  727. #
  728. # Specify the Demon Internet proxy server
  729. #
  730. PROXY www-cache.demon.co.uk:8080
  731.  
  732. #
  733. # Specify the timeouts - small since we're using a proxy
  734. #
  735. CONTIMEOUT 10
  736. HTTPTIMEOUT 30
  737.  
  738. #
  739. # Specify the number of attempts for each file
  740. #
  741. RETRIES 2
  742.  
  743. #
  744. # Specify that no mail address is to be sent to the server
  745. #
  746. USER
  747.  
  748. #
  749. # Specify the number of URLs to be downloaded concurrently.
  750. # This can be overridden by the TASKS command line option.
  751. #
  752. TASKS 12
  753.  
  754. #
  755. # Specify the file suffixes not to be downloaded
  756. #
  757.  
  758. # ignore lha archives
  759. IGNORE .lha
  760.  
  761. # ignore zip archives
  762. IGNORE .zip
  763.  
  764. # ignore .wav sound files
  765. IGNORE .wav
  766.  
  767. # ignore MS-DOS executables
  768. IGNORE .exe
  769.  
  770.  
  771. THE FILE "TCPDLDIR:tcpdlpp.config":
  772. -----------------------------------
  773.  
  774. The tcpdlpp.config file is optional. If present, the character translations
  775. defined in it are applied to each URL processed. Note that the actual file
  776. names are NOT changed, but only the URLs within each html file.
  777.  
  778. Each line of this file consists of a character literal to be converted
  779. and a character literal or string that should replace it. Character
  780. literals should be enclosed by single quotes ('), and strings should
  781. be enclosed by double quotes (").
  782.  
  783. White spaces (spaces and tabs) are ignored unless inside a string.
  784.  
  785. Any line where the first non-whitespace character is a hash (#) is 
  786. treated as a comment and ignored.
  787.  
  788. Certain escape characters are allowed in character literals and strings:
  789.  
  790.   \a    = bell
  791.   \b    = backspace
  792.   \f    = formfeed
  793.   \n    = newline
  794.   \r    = carriage return
  795.   \t    = horizontal tab
  796.   \v    = vertical tab
  797.   \\    = backslash
  798.   \'    = single quote
  799.   \"    = double quote
  800.   \nnn  = character with octal value nnn
  801.   \xnnn = character with hexadecimal value nnn
  802.  
  803. e.g. the following line will convert MS-DOS style backslashes into the
  804. AmigaDOS & Unix style forward slashes:
  805.  
  806.   '\\'  '/'
  807.  
  808. the following line will convert tilde into the safe "%xx" equivalent:
  809.  
  810.   '~'  "%7E" 
  811.  
  812. Each character is translated using a single rule - even if the end result 
  813. includes a character which would have been translated by some other rule.
  814. This allows two characters to be swapped over.
  815.  
  816.  
  817. TCPDLPP LISTING
  818. ---------------
  819.  
  820. The tcpdlpp program post processes the files downloaded by tcpdl. It
  821. expects the same tcpdldir: assign as tcpdl does.
  822.  
  823. A listing is sent to stdout, which consists of 3 sections:
  824.  
  825. - a list of each file processed or skipped. Since only html files will 
  826.   contain URLs to be updated, all other files are skipped. This acts
  827.   as a progress indicator.
  828.  
  829. - a list of all local files. The number of references to each is given.
  830.   If a file has no references to it, either it is a top level html file,
  831.   or it is simply not referenced. If you are building a browsable copy
  832.   of your favourite sites, you may want to delete any unreferenced files 
  833.   to save disk space.
  834.  
  835. - a list of all non-local URLs. As for the local files, the number of
  836.   references made to each by the local files is given. If a particular
  837.   URL has a lot of references, you may want to download that URL too.
  838.  
  839. Each time you add or remove files from the tcpdldir:http directory, you
  840. should re-run tcpdlpp to adjust any links that require amendment.
  841.  
  842. Files which are present, but which have had the URLs which reference
  843. them modified in some way by the translations in the tcpdlpp.config file
  844. will be listed as non-local unless the file name has been modified also.
  845. If such files are listed, then the file names should be changed, and
  846. tcpdlpp re-run to identify those files as local.
  847.  
  848.  
  849. WARNING
  850. -------
  851.  
  852. Note that unless explicitly stated to the contrary, the copyright of all 
  853. files on the WWW is held by the owners of the appropriate site.
  854.  
  855. If you intend to redistribute *any* files downloaded from the WWW please
  856. ensure that you have the permission of the copyright holder to do so.
  857.  
  858.